#include "Estudiante.h"

const int Estudiante::valorMatricula = 15000;

Estudiante::Estudiante(string nombre,string apellido1,string apellido2,string cedula,string nacionalidad,string carne)
{
	this->nombre = nombre;
	this->apellido1 = apellido1;
	this->apellido2 = apellido2;
	this->cedula = cedula;
	this->nacionalidad = nacionalidad;
	this->carne = carne;
	this->cursos = new Lista<Curso>();
}
Estudiante::~Estudiante()
{
	delete cursos;
}

string Estudiante::getNombre()
{
	return nombre;
}

string Estudiante::getApellido1()
{
	return apellido1;
}

string Estudiante::getApellido2()
{
	return apellido2;
}

string Estudiante::getCedula()
{
	return cedula;
}

string Estudiante::getNacionalidad()
{
	return nacionalidad;
}

string Estudiante::getCarne()
{
	return carne;
}

Lista<Curso>* Estudiante::getCursos(){
return cursos;
}


void Estudiante::setNombre(string nombre)
{
	this->nombre = nombre;
}

void Estudiante::setApellido1(string apellido1)
{
	this->apellido1 = apellido1;
}

void Estudiante::setApellido2(string apellido2)
{
	this->apellido2 = apellido2;
}

void Estudiante::setNacionalidad(string nac)
{
	this->nacionalidad = nac;
}


void Estudiante::agregaCurso(Curso *c)
{
    cursos->insertarPrimero(c);
}

int Estudiante::creditosTotales()
{
	int total =0;
	cursos->setActual(cursos->getPrimero());
	while(cursos->getActual() != NULL)
	{
		total += cursos->getActual()->getInfo()->getCreditos();
		cursos->setActual(cursos->getActual()->getSigNodo());
	}
	return total;
}

void Estudiante::setCursos(Lista<Curso>* list)
{
	cursos = list;
}

unsigned int Estudiante::gastosMatricula()
{
	unsigned int costo = 0;
	cursos->setActual(cursos->getActual());
	while(cursos->getActual() != NULL)
	{
		costo += valorMatricula;
		cursos->setActual(cursos->getActual());
	}
	return costo;
}

bool Estudiante::operator ==(string id){
     if(cedula==id || carne==id)
		 return true;
	 else
	     return false;

}